#include <iostream>
#include <vector>

using namespace std;

class Point
{
public:
    Point(double x = 0, double y = 0) : x(x), y(y) {
        cout << "Point(double x = " << x << ", double y = " << y << ")" << endl;
    }
    ~Point() {
        cout << "~Point():(" << x << ", " << y << ")" << endl;
    }
    void setX(double x) { this->x = x; }
    // double getX() {
    //     cout << "getX()" << endl;
    //     return x;
    // }
    double getX() const {
        cout << "getX() const" << endl;
        return x;
    }
    void setY(double y) { this->y = y; }
    double getY() const { return y; }
private:
    double x;
    double y;
};


int main(int argc, char* argv[])
{
    int a = 7;
    const int * p = new int(5);
    // *p = 6;
    p = &a;
    int * const p2 = new int(8);
    // p2 = &a;

    Point p1;
    p1.getX();
    const Point p3;
    p3.getX();

    return 0;
}